fun main() {
    SafeNull().checkEmpty()
}

class SafeNull {
    companion object {
        var aaa = ""
    }

    //定义非空变量
    var str: String = "a"

    //定义可为空的变量
    var str_01: String? = null

    fun checkEmpty() {
        //校验是否为null或长度为0,非空串和可空串均可调用
        println(str_01.isNullOrEmpty())
        //校验是否为null或长度为0或全为空格,非空串和可空串均可调用
        println(str_01.isNullOrBlank())

        //以下方法只有非空串可调用
        println(str.isEmpty())
        println(str.isBlank())
        println(str.isNotEmpty())
        println(str.isNotBlank())

        //如果str_01为空返回null,否则返回字符串的长度
        println(str_01?.length)
        //如果str_01为空返回-1,否则返回字符串的长度
        println(str_01?.length ?: -1)
        //如果确定已对str_01赋值,则可以使用!!,如果str_01为空会抛出运行时异常
        str_01 = "a"
        println(str_01!!.length)
    }
}